package com.shujia.scala

object Demo12ScalaFunc1 {
  // 函数可以定义在类class中、object中、函数中

  /**
   * def 声明函数的关键字
   * main 方法名
   * args: Array[String] 参数名: 参数类型
   * Unit 表示函数的返回值 相当于void
   * {方法体}
   */
  def main(args: Array[String]): Unit = {
    println("hello World")
    // 函数的调用： 函数名(参数1,参数2)
    func1("hello", "world")
    println(func2("张三2"))
    println(func3("张三3"))
    println(func4("张三4"))
    println(func5("张三5"))
    println(func6)
  }

  // 定义在object中的函数可以直接调用
  def func1(param1: String, param2: String): Unit = {
    println(s"${param1},${param2}")
  }

  // 函数的省略

  /**
   * 1、return关键字可以省略 默认以最后一行代码最为返回值
   * 2、如果函数只有一行代码，花括号可以省略
   * 3、返回值类型可以省略
   * 4、如果函数没有参数 括号可以省略
   */

  def func2(name: String): String = {
    return "hello:" + name
  }

  def func3(name: String): String = {
    "hello:" + name
  }

  def func4(name: String): String = "hello:" + name

  def func5(name: String) = "hello:" + name

  def func6 = "hello World" // func6是一个函数 不是变量！


}
